// pages/alert/alert.js
const allUrl = require('../../config').allUrl
var app = getApp()
var userInfo = app.globalData.userInfo


Page({
  data:{
    latitude: 30.274085,  //地图展示纬度
    longitude: 120.15507, //地图展示经度

    alertLatitude: 30.274085,   //地图中心点坐标，要报警的经纬度
    alertLongitude: 120.15507,
    willCall: false, //  将要报警了，false，就显示信息；true，就显示按钮
    showText: '',//显示的文本
    call_id: null,//  报警案件id
    run: false,

    caseData: null,
                      // address:"北京市东城区正义路2号正义路"
                      // call_id:"11"
                      // j_id:null
                      // j_lat:null
                      // j_lng:null
                      // lat:"39.90403"
                      // lng:"116.407526"
                      // mobile:"15637196121"
                      // remark:"这是一条备注"
                      // status:"0"


    // 固定标记
    markers:[],

    // 地图中心点
    controls:[]
  },



  onLoad:function(options){
    this.setData({
      call_id: options.call_id
    })
  },
  onReady:function(){
    // 使用wx.createMapContext获取map上下文
    this.mapCtx = wx.createMapContext('map')
  },
  onShow:function(){
    app.globalData.first = false


    var that = this
    console.log('app.globalData.call_id:' + app.globalData.call_id)
    if(app.globalData.call_id != null ){//有案件
      wx.setNavigationBarTitle({
        title: '案件详情'
      })
      this.setData({
        run: true,
        call_id: app.globalData.call_id,
        willCall: false,
        controls: []
      })
      that.onceReq()
    }else{//没有案件
      if (this.data.call_id) {//如果有call_id,说明是从列表进入
        wx.setNavigationBarTitle({
          title: '案件详情'
        })
        this.setData({
          run: true
        })
        this.onceReq()
      } else {
        wx.setNavigationBarTitle({
          title: '报警'
        })
        this.setData({
          willCall: true
        })
        // 获取中心点位置
        this.getCenterPosition()
        //  获取用户当前位置信息
        this.getUserLoca()
      }
    }
  },
  onHide: function () {
    app.globalData.first = true
  },
  onUnload: function () {
    app.globalData.first = true
    this.setData({
      run: false
    })
  },


  //  事件处理函数,点击报警按钮，获取坐标位置，发送
  reportAction: function(){
    if(app.globalData.call_id!=null||this.data.call_id!=null){
      wx.showToast({
        title: "您有案件未被处理完，暂不能报警"
      })
    }else{
      //获取位置坐标信息
      this.getCenterLocation()
    }
  },
  //  点击进入历史记录界面
  goHistoryPage: function(){
    wx.navigateTo({
      url: '../history/history',
      success: function(res){},
      fail: function(res) {},
      complete: function(res) {}
    })
  },
  regionchange(e){
    // console.log(e.type)
  },
  markertap(e){
    // console.log(e.markerId)
    if(e.markerId==1){//报警地方
      app.showSomeModel1('报案信息', '地址:'+this.data.caseData.address
          +'\n信息:'+this.data.caseData.remark
          +'\n报警电话:'+this.data.caseData.mobile, 
          function(){}, function(){}, function(){})
    }else{//民警位置
      app.showSomeModel1('民警信息', '民警:'+this.data.caseData.j_name
          +'\n距离:'+this.data.caseData.distance, 
          function(){}, function(){}, function(){})
    }
  },
  controltap(e){
    // console.log(e.controlId)
  },



  // 获取地图中心点
  getCenterPosition: function () {
    // var control = [{
    //   id: 1,
    //   iconPath: '/images/icon_local.png',
    //   position: {
    //     left: (app.globalData.windowWidth - 25) / 2.0,
    //     top: (app.globalData.windowHeight - 125) / 2.0,
    //     width: 25,
    //     height: 25
    //   },
    //   clickable: true
    // }]
    var control = [{
      id: 1,
      iconPath: '/images/icon_local.png',
      position: {
        left: (app.globalData.windowWidth) / 2.0 - 13,
        top: (app.globalData.windowHeight - 100) / 2.0 - 26,
        width: 26,
        height: 26
      },
      clickable: true
    }]

    this.setData({
      controls: control
    })
  },
  // 获取地图中心坐标
  getCenterLocation: function(){
    var that = this
    this.mapCtx.getCenterLocation({
      success: function(map_res){
        that.setData({
          alertLatitude: map_res.latitude,
          alertLongitude: map_res.longitude
        })

        //  点击进入立即报警界面
        wx.navigateTo({
          url: '../sendInfo/sendInfo?latitude='+map_res.latitude+'&longitude='+map_res.longitude,
          success: function(res){
            // success
          },
          fail: function(res) {
            // fail
          },
          complete: function(res) {
            // complete
          }
        })
      }
    })
  },

  //  获取用户当前位置
  getUserLoca: function(){
    var that = this
    wx.getLocation({
      type: 'gcj02', // 默认为 wgs84 返回 gps 坐标，gcj02 返回可用于 wx.openLocation 的坐标
      success: function(res){
        that.setData({
          latitude: res.latitude,
          longitude: res.longitude
        })
      },
      fail: function(res) {},
      complete: function(res) {}
    })
  },



  //  循环请求
  rePoliceReq: function () {
    var that = this
    console.log('一次请求。。。。')
    console.log('app.globalData.call_id->' + app.globalData.call_id)
    if(that.data.call_id==null){
      that.setData({
        call_id: app.globalData.call_id
      })
    }
    //  十秒钟请求一次
    setTimeout(function(){
      // if (that.data.call_id) {
      if (app.globalData.call_id) {
        that.onceReq()
      }
    }, 3000);
  },
  //  --- 一次请求
  onceReq: function(){
    if(this.data.run){//如果还在当前页面，执行之后网络请求操作
      var that = this
      wx.request({
          url: allUrl + 'Api/getCallById.html',
          data: {
            call_id: that.data.call_id
          },
          header: {
            'Accept': 'application/json',
            'Content-Type': 'application/x-www-form-urlencoded'
          },
          method: 'POST', 
          success: function(one_res){
            console.log('dddddddddddddd')
            console.log(one_res.data)
            if(one_res.data.status_code != 200){
              that.rePoliceReq() 
              return;
            }
            // 地图显示民警和案件发生位置
            that.setData({
              caseData: one_res.data.data.call,
              latitude: one_res.data.data.call.lat,
              longitude: one_res.data.data.call.lng,
              run: (one_res.data.data.call.status==3)?false:true,
              markers: [
                {//案件发生地
                  iconPath: '/images/icon_case.png',
                  id: 1,
                  latitude: Number.parseFloat(one_res.data.data.call.lat),
                  longitude: Number.parseFloat(one_res.data.data.call.lng),
                  width: 26,
                  height: 36
                },
                {//民警位置
                  iconPath: '/images/icon_police.png',
                  id: 2,
                  latitude: Number.parseFloat(one_res.data.data.call.j_lat),
                  longitude: Number.parseFloat(one_res.data.data.call.j_lng),
                  width: 26,
                  height: 36
                }
              ]
            })
            // 显示具体信息
            that.setData({
              // showText: one_res.data.data.call.status==0?'案件待受理中,您前面还有'+one_res.data.data.call.todoCount+'个案件正在处理':
              //             one_res.data.data.call.status==1?'案件已处理完':
              //     one_res.data.data.call.status == 2 ? '警察正在赶来,距您约' + one_res.data.data.call.distance :
              //             one_res.data.data.call.status==3?'案件已被取消,请等待重新受理':''


              showText: one_res.data.data.call.status == 0 ? '请先拨打报警电话'  :
                (one_res.data.data.call.status == 1 ||one_res.data.data.call.status == 4) ? '等待民警接收案件' :
                  one_res.data.data.call.status == 2 ? '警察正在赶来,距您约' + one_res.data.data.call.distance :
                    one_res.data.data.call.status == 3 ? '案件完成' : ''
            })
            
            //  如果案件已完成
            if(one_res.data.data.call.status==3){
              app.globalData.call_id = null
            }
          },
          fail: function(one_res) {},
          complete: function(one_res) {
            //  如果没有完成，那么就继续请求
            console.log(111111)
            console.log(one_res.data)
            // if(one_res.data.data){
            //   if (one_res.data.data.call.status != 1 && one_res.data.data.call.status != 3) {
            //     that.rePoliceReq()
            //   }
            // }
            // else{
            //   that.rePoliceReq()
            // }

            // if (one_res.data.data == null || one_res.data.data.call == null || (one_res.data.data.call.status != 3)) {
            //   that.rePoliceReq()
            // }
            if(one_res.data==null || one_res.data.data==null || one_res.data.data.call==null){

            }
            if (one_res.data.data.call.status != 3) {
              that.rePoliceReq()
            }
          }
        })
    }
  },
})